home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / DDJ0992.ARJ / DBDAT.INC < prev    next >
Text File  |  1992-05-31  |  15KB  |  342 lines

  1. ;---------------------------------------------------------------    
  2. ;dbdat.inc - data for debugger                                 |
  3. ;--------------------------------------------------------------|
  4. ;
  5.  
  6. data            segment para public 'data16' use16
  7.                 public  get_out, edit_routine, cmd_buffer, config_attrib 
  8.                 public  config_attrib, wrk_vid_offset, user_page 
  9.                 public  debug_page, firstf, io_instrucf, io_bpdat  
  10.                 public  trace_count, get_out, num_io_bp, RW_LEN 
  11.                 public  bp_reg_dat, write_text, WRITE_LEN, rw_text 
  12.                 public  num_reg_type, buf_put, buf_get, save_curs_pos 
  13.                 public  spec_keys, SPEC_KEYS_LEN, key_buf 
  14.                 public  debug_page_off, prompt_char
  15.                 public  io_table, IO_TAB_ENTRIES
  16.                 public  display_loc, io_inst_port, io_inst_info
  17.                 public  DATA_BEG, DATA_END, int1_active
  18.                 public  gdtlim, idtlim, gdtl, idtl, gdtadrs, idtadrs
  19.                 public  num_int_bp, int_bpdat, num_reg_data, num_table
  20.                 public  tuser_ip, tuser_cs, trap_clear, video_seg    
  21. DATA_BEG        EQU     $
  22.  
  23. spec_keys       sp_key_tab      <LEFT_ARROW, zcode:do_left>
  24.                 sp_key_tab      <RUB_OUT, zcode:do_rub_out>
  25.                 sp_key_tab      <RIGHT_ARROW, zcode:do_right>
  26.                 sp_key_tab      <INSERT, zcode:do_insert>
  27.                 sp_key_tab      <DELETE, zcode:do_delete>
  28. SPEC_KEYS_LEN   EQU     ($ - spec_keys)/size sp_key_tab                
  29.  
  30. cmd_table       cmd_info        <trace, TRACE_LEN, zcode:do_trace>
  31.                 cmd_info        <go, GO_LEN, zcode:do_go>
  32.                 cmd_info        <reg, REG_LEN, zcode:do_reg>
  33.                 cmd_info        <dump, DUMP_LEN, zcode:do_dump>
  34.                 cmd_info        <edit, EDIT_LEN, zcode:do_edit_b>
  35.                 cmd_info        <quit, QUIT_LEN, zcode:do_quit>
  36.                 cmd_info        <xud, XUD_LEN, zcode:do_xud>
  37. ;
  38. ;Place all commands which start with the same letter together.  Order
  39. ;them by length in decreasing order (str_lookup routine depends on this)
  40. ;
  41.                 cmd_info        <brk_pint, BRK_PINT_LEN, zcode:do_bpint>
  42.                 cmd_info        <brk_pio, BRK_PIO_LEN, zcode:do_bpio>
  43.                 cmd_info        <brk_pb, BRK_PB_LEN, zcode:do_bp>
  44.                 cmd_info        <brk_pw, BRK_PW_LEN, zcode:do_bpw>
  45.                 cmd_info        <brk_pd, BRK_PD_LEN, zcode:do_bpd>
  46.                 cmd_info        <brk_px, BRK_PX_LEN, zcode:do_bpx>
  47.                 cmd_info        <brk_c, BRK_C_LEN, zcode:do_bc>
  48.                 cmd_info        <brk_l, BRK_L_LEN, zcode:do_bl>
  49.                 cmd_info        <brk_p, BRK_P_LEN, zcode:do_bp>
  50. CMD_TABLE_LEN   EQU     ($ - cmd_table)/size cmd_info
  51.  
  52.  
  53. trace           db      'T'
  54. TRACE_LEN       EQU     $ - trace
  55.  
  56. go              db      'G'
  57. GO_LEN          EQU     $ - go
  58.  
  59. reg             db      'R'
  60. REG_LEN         EQU     $ - reg
  61.  
  62. dump            db      'D'
  63. DUMP_LEN        EQU     $ - dump
  64.  
  65. edit            db      'E'
  66. EDIT_LEN        EQU     $ - edit
  67.  
  68. quit            db      'Q'
  69. QUIT_LEN        EQU     $ - quit
  70.  
  71. xud             db      'XUD'
  72. XUD_LEN         EQU     $ - xud 
  73.  
  74. brk_c           db      'BC'
  75. BRK_C_LEN       EQU     $ - brk_c 
  76.  
  77. brk_l           db      'BL'
  78. BRK_L_LEN       EQU     $ - brk_l 
  79.  
  80. brk_p           db      'BP'
  81. BRK_P_LEN       EQU     $ - brk_p 
  82.  
  83. brk_pb          db      'BPB'
  84. BRK_PB_LEN      EQU     $ - brk_pb      
  85.  
  86. brk_pw          db      'BPW'
  87. BRK_PW_LEN      EQU     $ - brk_pw      
  88.  
  89. brk_pd          db      'BPD'
  90. BRK_PD_LEN      EQU     $ - brk_pd      
  91.  
  92. brk_px          db      'BPX'
  93. BRK_PX_LEN      EQU     $ - brk_px        
  94.  
  95. brk_pio         db      'BPIO'
  96. BRK_PIO_LEN     EQU     $ - brk_pio       
  97.  
  98. brk_pint        db      'BPINT'
  99. BRK_PINT_LEN    EQU     $ - brk_pint      
  100.  
  101. read_text       db      'R'
  102. READ_LEN        EQU     $ - read_text
  103.  
  104. write_text      db      'W'
  105. WRITE_LEN       EQU     $ - write_text
  106.  
  107. rw_text         db      'RW'
  108. RW_LEN          EQU     $ - rw_text
  109.  
  110. eq_text         db      'EQ'
  111. EQ_LEN          EQU     $ - eq_text
  112.  
  113. eqsign_text     db      '='
  114. EQSIGN_LEN      EQU     $ - eqsign_text
  115.  
  116. ne_text         db      'NE'
  117. NE_LEN          EQU     $ - ne_text
  118.  
  119.  
  120. al_text         db      'AL'
  121. ah_text         db      'AH'
  122.  
  123. ax_text         db      'AX'
  124. REGS16_TEXT_LEN EQU     $ - ax_text
  125. cx_text         db      'CX'
  126. dx_text         db      'DX'
  127. bx_text         db      'BX'
  128. sp_text         db      'SP'
  129. bp_text         db      'BP'
  130. si_text         db      'SI'
  131. di_text         db      'DI'
  132. ds_text         db      'DS'
  133. es_text         db      'ES'
  134. fs_text         db      'FS'
  135. gs_text         db      'GS'
  136. ss_text         db      'SS'
  137. cs_text         db      'CS'
  138. ip_text         db      'IP'
  139. f_text          db      'F'
  140.  
  141.  
  142.  
  143. ov_text         db      'OV'
  144. dn_text         db      'DN'
  145. ei_text         db      'EI'
  146. ng_text         db      'NG'
  147. zr_text         db      'ZR'
  148. ac_text         db      'AC'
  149. pe_text         db      'PE'
  150. cy_text         db      'CY'
  151. SET_FLAGS_LEN   EQU     ($ - ov_text)
  152. nv_text         db      'NV'
  153. up_text         db      'UP'
  154. fdi_text        db      'DI'
  155. pl_text         db      'PL'
  156. nz_text         db      'NZ'
  157. na_text         db      'NA'
  158. po_text         db      'PO'
  159. nc_text         db      'NC'
  160.  
  161.  
  162. flags_info_start label  word     
  163. flags_info_ov   flags_tbl       <ov_text, 2, overf>
  164. flags_info_dn   flags_tbl       <dn_text, 2, direc>
  165. flags_info_ei   flags_tbl       <ei_text, 2, inter>
  166. flags_info_ng   flags_tbl       <ng_text, 2, sign>
  167. flags_info_zr   flags_tbl       <zr_text, 2, zero>
  168. flags_info_ac   flags_tbl       <ac_text, 2, auxcarry>
  169. flags_info_pe   flags_tbl       <pe_text, 2, parity>
  170. flags_info_cy   flags_tbl       <cy_text, 2, carry>
  171. FLAGS_ALL_BITS  EQU  ($ - flags_info_start)/size flags_tbl
  172. flags_info_mid  EQU offset flags_info_nv     
  173. flags_info_nv   flags_tbl       <nv_text, 2, overf>
  174. flags_info_up   flags_tbl       <up_text, 2, direc>
  175. flags_info_di   flags_tbl       <di_text, 2, inter>
  176. flags_info_pl   flags_tbl       <pl_text, 2, sign>
  177. flags_info_nz   flags_tbl       <nz_text, 2, zero>
  178. flags_info_na   flags_tbl       <na_text, 2, auxcarry>
  179. flags_info_po   flags_tbl       <po_text, 2, parity>
  180. flags_info_nc   flags_tbl       <nc_text, 2, carry>
  181. FLAGS_TABLE_ENTRIES EQU  ($ - flags_info_start)/size flags_tbl
  182.  
  183. regs_info_start label  word                   
  184. regs_info_ax    regs_stab <ax_text, REGS16_TEXT_LEN, regs_ax>
  185. regs_info_cx    regs_stab <cx_text, REGS16_TEXT_LEN, regs_cx>
  186. regs_info_dx    regs_stab <dx_text, REGS16_TEXT_LEN, regs_dx>
  187. regs_info_bx    regs_stab <bx_text, REGS16_TEXT_LEN, regs_bx>
  188. regs_info_sp    regs_stab <sp_text, REGS16_TEXT_LEN, regs_sp>
  189. regs_info_bp    regs_stab <bp_text, REGS16_TEXT_LEN, regs_bp>
  190. regs_info_si    regs_stab <si_text, REGS16_TEXT_LEN, regs_si>
  191. regs_info_di    regs_stab <di_text, REGS16_TEXT_LEN, regs_di>
  192. regs_info_ip    regs_stab <ip_text, REGS16_TEXT_LEN, regs_ip>
  193.  
  194. REGS_GEN_ENTRIES EQU ($ - regs_info_start)/size regs_stab   
  195.  
  196. REGS_INFO_SEGS  EQU  offset regs_info_ds
  197.  
  198.  
  199. regs_info_ds    regs_stab <ds_text, REGS16_TEXT_LEN, regs_ds>
  200. regs_info_es    regs_stab <es_text, REGS16_TEXT_LEN, regs_es>
  201. regs_info_fs    regs_stab <fs_text, REGS16_TEXT_LEN, regs_fs>
  202. regs_info_gs    regs_stab <gs_text, REGS16_TEXT_LEN, regs_gs>
  203. regs_info_ss    regs_stab <ss_text, REGS16_TEXT_LEN, regs_ss>
  204. regs_info_cs    regs_stab <cs_text, REGS16_TEXT_LEN, regs_cs>
  205. REGS_SEGS_ENTRIES EQU  ($ - regs_info_segs)/size regs_stab
  206. regs_info_f     regs_stab <f_text, 1, regs_f>
  207. REGS_TABLE_ENTRIES EQU  ($ - regs_info_start)/size regs_stab
  208.  
  209. ;
  210. ;Holds index for entry in table of offsets.  These are in the order in which
  211. ;registers are displayed by the register command.
  212.  
  213. regs_indx       db       (regs_info_ax - regs_info_start)
  214.                 db       (regs_info_bx - regs_info_start)
  215.                 db       (regs_info_cx - regs_info_start)
  216.                 db       (regs_info_dx - regs_info_start)
  217.                 db       (regs_info_sp - regs_info_start)
  218.                 db       (regs_info_bp - regs_info_start)
  219.                 db       (regs_info_si - regs_info_start)
  220.                 db       (regs_info_di - regs_info_start)
  221. NUM_REGS_1LINE  EQU     $ - regs_indx   ;number of registers on one line
  222.                 db       (regs_info_ds - regs_info_start)
  223.                 db       (regs_info_es - regs_info_start)
  224.                 db       (regs_info_ss - regs_info_start)
  225.                 db       (regs_info_cs - regs_info_start)
  226.                 db       (regs_info_ip - regs_info_start)
  227.                 db       (regs_info_f - regs_info_start)
  228. NUM_REGS_DISP   EQU     $ - regs_indx   ;number of registers to display
  229.  
  230.  
  231. dir_indic_r     off_len_code <read_text, READ_LEN, IO_TYPE_READ >
  232. dir_indic_rw    off_len_code <rw_text, RW_LEN, DEB_TYPE_RW>
  233.                 off_len_code <write_text, WRITE_LEN, DEB_TYPE_WRITE>
  234. RW_W_ENTRIES    EQU  ($ - dir_indic_rw)/size off_len_code
  235. DIR_TABLE_ENTRIES EQU  ($ - dir_indic_r)/size off_len_code
  236.  
  237. operators       off_len_code <eq_text, EQ_LEN, EQ_CODE>
  238.                 off_len_code <eqsign_text, EQSIGN_LEN, EQ_CODE>
  239. EQ_TABLE_ENTRIES EQU  ($ - operators)/size off_len_code
  240.                 off_len_code <ne_text, NE_LEN, NE_CODE>
  241. OPER_TABLE_ENTRIES EQU  ($ - operators)/size off_len_code
  242.  
  243. tab_ax          off_len_code <al_text, REGS16_TEXT_LEN, INT_AL_COMP>
  244.                 off_len_code <ah_text, REGS16_TEXT_LEN, INT_AH_COMP>
  245.                 off_len_code <ax_text, REGS16_TEXT_LEN, INT_AX_COMP>
  246. AX_TABLE_ENTRIES EQU  ($ - tab_ax)/size off_len_code
  247.  
  248. num_table       db      '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
  249.  
  250. syntax_msg      db      'Syntax Error', STR_TERM
  251. bad_reg_msg     db      'Invalid register specified', STR_TERM
  252. bad_flags_msg   db      'Invalid flags specified', STR_TERM
  253. bad_addrs_msg   db      'Invalid address specified', STR_TERM
  254. bad_io_msg      db      'Invalid I/O port specified', STR_TERM
  255. bad_range_msg   db      'Invalid range specified', STR_TERM
  256. bad_trace_msg   db      'Invalid trace count specified', STR_TERM
  257. bad_int_msg     db      'Invalid int specified', STR_TERM
  258. max_bps_msg     db      'Maximum break points exceeded', STR_TERM
  259. max_deb_msg     db      'Maximum debug register break points exceeded', STR_TERM
  260. bad_bp_msg      db      'Only W or RW are valid', STR_TERM
  261. bad_iodir_msg   db      'Only R, W or RW are valid', STR_TERM
  262. bad_bc_msg1     db      'Must specify "*" or break point number', STR_TERM
  263. bad_bc_msg2     db      'Exceeds number of break points', STR_TERM
  264. prompt_char     db      '$'
  265.  
  266. BUF_START       equ     offset key_buf
  267. key_buf         dw      KEY_BUF_MAX dup(0)
  268. BUF_END         equ     offset buf_put         
  269. buf_put         dw      offset key_buf
  270. buf_get         dw      offset key_buf
  271. save_curs_pos   dw      ?
  272. config_attrib   db      DEFAULT_ATTRIB    
  273. ;
  274. ;may want to see which page is in use and change debug page appropriately.
  275. ;
  276.  
  277. debug_page      db      DEF_DB_PAGE             ;page debugger will use
  278. debug_page_off  dw    (PAGE_SIZE * DEF_DB_PAGE) ;offset of that page
  279. user_page       db      0                       ;find out first
  280. wrk_vid_offset  dw      ?
  281. cmd_buffer      db      CMD_MAX_LEN + 1 dup(' ')
  282. get_out         dw      0                       ;get out of edit on key
  283. edit_routine    dw      0                       ;offset of edit routine
  284. int1_active     db      FALSE                   ;true when debugger is active
  285.  
  286. did_dump        db      FALSE                   ;no dump command yet
  287. dump_address    dd      0                       ;seg:off for dumps
  288. edit_address    dd      0                       ;seg:off for edits
  289. edit_length     db      0                       ;length of edit data
  290. edit_num        db      0                       ;number of items to edit
  291. seg_found       db      FALSE                   ;TRUE if seg reg found        
  292. trace_count     dw      0                       ;used for TRACE [n]
  293. io_instrucf     db      FALSE                   ;TRUE is tracing thru I/O
  294. io_inst_port    dw      0                       ;port used in I/O instruction
  295. io_inst_info    db      0                       ;information about instruction
  296. firstf          db      TRUE                    ;first time in debugger
  297.  
  298. max_goneto      db      0                       ;highest of the brk points
  299. num_used        db      0                       ;number brk points active
  300. num_reg_type    db      0                       ;number debug reg type breaks
  301. num_reg_data    db      0                       ;number debug reg data type
  302. num_int_bp      db      0                       ;number int type breaks
  303. num_io_bp       db      0                       ;number I/O type breaks
  304.  
  305. tuser_ip        dw      0
  306. tuser_cs        dw      0
  307. trap_clear      db      FALSE                   ;TRUE if ISR should not clear
  308.                                                 ;the trap flag
  309. brk_list        mast_list  MAX_BRK_POINTS dup(<AVAIL,>) ;master break point list
  310. bp_reg_dat      info_bpreg MAX_DR_BRK_POINTS dup(<AVAIL,,,,,>) ;debug reg list
  311. int_bpdat       info_int   MAX_BRK_POINTS dup(<AVAIL,,,>) ;int break point list
  312. io_bpdat        info_io    MAX_BRK_POINTS dup(<AVAIL,,,,>) ;I/O break point list
  313.  
  314. io_table        io_struc        <0e4h, INPUT+CONSTANT+ABYTE>
  315.                 io_struc        <0e5h, INPUT+CONSTANT+AWORD>
  316.                 io_struc        <0e6h, OUTPUT+CONSTANT+ABYTE>
  317.                 io_struc        <0e7h, OUTPUT+CONSTANT+AWORD>
  318.                 io_struc        <0ech, INPUT+ABYTE>
  319.                 io_struc        <0edh, INPUT+AWORD>
  320.                 io_struc        <0eeh, OUTPUT+ABYTE>
  321.                 io_struc        <0efh, OUTPUT+AWORD>
  322.                 io_struc        <06ch, STRING+INPUT+ABYTE>
  323.                 io_struc        <06dh, STRING+INPUT+AWORD>
  324.                 io_struc        <06eh, SEG_OVER+STRING+OUTPUT+ABYTE>
  325.                 io_struc        <06fh, SEG_OVER+STRING+OUTPUT+AWORD>
  326. IO_TAB_ENTRIES  EQU     ($ - io_table)/size io_struc     
  327.  
  328.  
  329. gdtl            EQU     THIS FWORD
  330. gdtlim          dw      ?
  331. gdtadrs         dd      ?
  332.  
  333. idtl            EQU     THIS FWORD
  334. idtlim          dw      ?
  335. idtadrs         dd      ?
  336.  
  337. video_seg       dw      ?
  338. display_loc     dw      0               ;offset into video page
  339. DATA_END        EQU     $
  340. data            ends                              
  341.  
  342.